package com.java8.lambda.dome;

import java.util.function.BinaryOperator;

/**
 * <p>Description: [类功能描述]</p>
 * Created on 2020/2/25
 *
 * @author <a href="mailto: 819712047@qq.com">谢振东 </a>
 * @version 1.0
 */
public class test4 {
    /**
     * 4）上面的例子，函数体中，都是一行语句，最后一个语法，
     * 介绍下，lambda表达式中，多行语句，分别在无返回值和有返回值的抽象类中的用法
     */
    public static void master() {
        System.out.println("-----------------test4.master()-----------------");

        // 无返回值lambda函数体中用法
        Runnable r1 = () -> {
            System.out.println("hello lambda1");
            System.out.println("hello lambda2");
            System.out.println("hello lambda3");
        };
        r1.run();

        // 有返回值lambda函数体中用法
        BinaryOperator<Integer> binary = (x, y) -> {
            int a = x * 2;
            int b = y + 2;
            return a + b;
        };
        // 6
        System.out.println(binary.apply(1, 2));
    }
}
